/* 
 * Copyright (C) 2004-2008  University of Wisconsin-Madison and Omnitor AB
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */
package se.omnitor.protocol.rtp.packets;

/**
 * Interface which is implemented by classes which are interested in receiving
 * RTP Packets. Implementation for handleRTPEvent method must be provided by 
 * such classes.  The method <b> addRTP_actionListener() </b> in Session is 
 * responsible for registerring the listener (only one listener per session).
 * RTP packets will be posted only after the class implementing this interface
 * registers itself with the Session. <br>
 * <br>
 * Note: <br>
 * It is assumed that ONE and only one class in an application is implementing
 * this interface is registered with the Session.  If there is no such
 * registered class, Session will print error messages every time an RTP 
 * packet is received.<br>
 * <br>
 * Future releases might add multiple listener registeration.
 *
 * @author Unknown
 *
 * @see se.omnitor.rtp.packets.RTPPacket
 */
public interface RTP_actionListener
{
    /**
     * Implementation of this method makes use of the RTPPacket.
     *
     * @param pkt The received RTP packet (this can be a looped back RTP
     * packet, to disable RTP packet loopback, set the
     * <b> Session.enableLoopBack = false; </b>.
     *
     * @see se.omnitor.rtp.Session#enableLoopBack
     */
    void handleRTPEvent(RTPPacket pkt);
}
